package net.interneteidee.controller;

import java.util.Date;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.inject.Inject;

import net.interneteidee.entity.Fattura;
import net.interneteidee.entity.Ordine;
import net.interneteidee.servizi.OrdineFatturaService;
import net.interneteidee.utility.SelectBean;


@ManagedBean
@SessionScoped
public class OrdineFatturaController {

	private List<Ordine>  ordiniRicercati;
	private List<Fattura> fattureRicercate;
	private List<Fattura> fattureInScadenza;
	private List<Ordine>  ordiniNonFatturati;
	
	private Date dataDa;
	private Date dataA;
	private String tipologiaSelezione;
	private String principalCliente;
	
	private String statusRicercheOrdini;
	private String statusRicercheFatture;

	private int page = 1;

	@Inject
	OrdineFatturaService ordineFatturaService;
	
	@ManagedProperty (value="#{selectBean}")
	private SelectBean selectBean;

	public OrdineFatturaController() {
		// TODO Auto-generated constructor stub
		dataDa = new Date();
		dataA = new Date ();
	}
	
	public void findFattureByStato(){
		fattureRicercate = ordineFatturaService.findFattureByStato(dataDa, dataA, tipologiaSelezione);
		statusRicercheFatture="Sono state selezionate "+fattureRicercate.size()+" fatture";

	}
	
	public void findFattureDiUnDatoClienteByStato(){
		fattureRicercate = ordineFatturaService.findFattureDiUnDatoClienteByStato(dataDa, dataA, tipologiaSelezione, principalCliente);
		statusRicercheFatture="Sono state selezionate "+fattureRicercate.size()+" fatture";
	}
	
	public void findDatiForDashAdmin(){
		fattureInScadenza = ordineFatturaService.findFattureInScadenza();
		ordiniNonFatturati = ordineFatturaService.findOrdiniNonFatturati();
		selectBean.findClientiAttivi();
	}
	
	
	
	public void findOrdineByStato(){
		ordiniRicercati = ordineFatturaService.findOrdiniByStato(dataDa, dataA, tipologiaSelezione);
		statusRicercheOrdini="Sono stati selezionati "+ordiniRicercati.size()+" ordini";
	}
	
	public void findOrdiniDiUnDatoClienteByStato(){
		ordiniRicercati = ordineFatturaService.findOrdiniDiUnDatoClienteByStato(dataDa, dataA, tipologiaSelezione,principalCliente);
		statusRicercheOrdini="Sono stati selezionati "+ordiniRicercati.size()+" ordini";
	}

	public List<Ordine> getOrdiniRicercati() {
		return ordiniRicercati;
	}

	public void setOrdiniRicercati(List<Ordine> ordiniRicercati) {
		this.ordiniRicercati = ordiniRicercati;
	}

	public Date getDataDa() {
		return dataDa;
	}


	public void setDataDa(Date dataDa) {
		this.dataDa = dataDa;
	}


	public Date getDataA() {
		return dataA;
	}


	public void setDataA(Date dataA) {
		this.dataA = dataA;
	}


	public String getTipologiaSelezione() {
		return tipologiaSelezione;
	}


	public void setTipologiaSelezione(String tipologiaSelezione) {
		this.tipologiaSelezione = tipologiaSelezione;
	}


	public int getPage() {
		return page;
	}


	public void setPage(int page) {
		this.page = page;
	}

	

	public String getPrincipalCliente() {
		return principalCliente;
	}

	public void setPrincipalCliente(String principalCliente) {
		this.principalCliente = principalCliente;
	}

	public List<Fattura> getFattureRicercate() {
		return fattureRicercate;
	}

	public void setFattureRicercate(List<Fattura> fattureRicercate) {
		this.fattureRicercate = fattureRicercate;
	}

	public List<Fattura> getFattureInScadenza() {
		return fattureInScadenza;
	}

	public void setFattureInScadenza(List<Fattura> fattureInScadenza) {
		this.fattureInScadenza = fattureInScadenza;
	}

	public List<Ordine> getOrdiniNonFatturati() {
		return ordiniNonFatturati;
	}

	public void setOrdiniNonFatturati(List<Ordine> ordiniNonFatturati) {
		this.ordiniNonFatturati = ordiniNonFatturati;
	}

	public String getStatusRicercheOrdini() {
		return statusRicercheOrdini;
	}

	public void setStatusRicercheOrdini(String statusRicercheOrdini) {
		this.statusRicercheOrdini = statusRicercheOrdini;
	}

	public String getStatusRicercheFatture() {
		return statusRicercheFatture;
	}

	public void setStatusRicercheFatture(String statusRicercheFatture) {
		this.statusRicercheFatture = statusRicercheFatture;
	}

	public SelectBean getSelectBean() {
		return selectBean;
	}

	public void setSelectBean(SelectBean selectBean) {
		this.selectBean = selectBean;
	}

	
	
	

}
